{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "EnL8cLOHU84Y"
      },
      "outputs": [],
      "source": [
        "import torch\n",
        "import torch.nn.functional as F"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "Hd8bGqzIU84c"
      },
      "outputs": [],
      "source": [
        "# replace following class code with an easy sequential network\n",
        "class Net(torch.nn.Module):\n",
        "    def __init__(self, n_feature, n_hidden, n_output):\n",
        "        super(Net, self).__init__()\n",
        "        self.hidden = torch.nn.Linear(n_feature, n_hidden)   # hidden layer\n",
        "        self.predict = torch.nn.Linear(n_hidden, n_output)   # output layer\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = F.relu(self.hidden(x))      # activation function for hidden layer\n",
        "        x = self.predict(x)             # linear output\n",
        "        return x"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "id": "iprMzbnoU84d"
      },
      "outputs": [],
      "source": [
        "net1 = Net(1, 100, 1)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "id": "mSWZovHjU84e"
      },
      "outputs": [],
      "source": [
        "# easy and fast way to build your network\n",
        "net2 = torch.nn.Sequential(\n",
        "    torch.nn.Linear(1, 100),\n",
        "    torch.nn.ReLU(),\n",
        "    torch.nn.Linear(100, 1)\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "id": "tLbRuhX5U84e",
        "outputId": "11a57d6c-44ff-464c-c16d-aa500d55dd6b",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Net(\n",
            "  (hidden): Linear(in_features=1, out_features=100, bias=True)\n",
            "  (predict): Linear(in_features=100, out_features=1, bias=True)\n",
            ")\n",
            "Sequential(\n",
            "  (0): Linear(in_features=1, out_features=100, bias=True)\n",
            "  (1): ReLU()\n",
            "  (2): Linear(in_features=100, out_features=1, bias=True)\n",
            ")\n"
          ]
        }
      ],
      "source": [
        "print(net1)     # net1 architecture\n",
        "print(net2)     # net2 architecture"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "id": "HB4JU4tpU84f",
        "outputId": "0c934140-19bc-48a1-a990-997ef7746a90",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<torch._C.Generator at 0x7f39141eba50>"
            ]
          },
          "metadata": {},
          "execution_count": 6
        }
      ],
      "source": [
        "import torch\n",
        "import torch.utils.data as Data\n",
        "\n",
        "torch.manual_seed(1234)    # reproducible"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "id": "81rlCeXjU84g"
      },
      "outputs": [],
      "source": [
        "BATCH_SIZE = 5\n",
        "# BATCH_SIZE = 8"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "id": "VMIGGfUjU84h"
      },
      "outputs": [],
      "source": [
        "x = torch.linspace(1, 10, 10)       # this is x data (torch tensor)\n",
        "y = torch.linspace(10, 1, 10)       # this is y data (torch tensor)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "1y7Obc0_U84i"
      },
      "outputs": [],
      "source": [
        "torch_dataset = Data.TensorDataset(x, y)\n",
        "loader = Data.DataLoader(\n",
        "    dataset=torch_dataset,      # torch TensorDataset format\n",
        "    batch_size=BATCH_SIZE,      # mini batch size\n",
        "    shuffle=True,               # random shuffle for training\n",
        "    num_workers=2,              # subprocesses for loading data\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "id": "UcbofYukU84i",
        "outputId": "855d1932-886a-41a3-ba93-d25e41284453",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch:  0 | Step:  0 | batch x:  [3. 2. 4. 7. 8.] | batch y:  [8. 9. 7. 4. 3.]\n",
            "Epoch:  0 | Step:  1 | batch x:  [10.  6.  5.  9.  1.] | batch y:  [ 1.  5.  6.  2. 10.]\n",
            "Epoch:  1 | Step:  0 | batch x:  [ 4.  1. 10.  6.  3.] | batch y:  [ 7. 10.  1.  5.  8.]\n",
            "Epoch:  1 | Step:  1 | batch x:  [7. 5. 8. 9. 2.] | batch y:  [4. 6. 3. 2. 9.]\n",
            "Epoch:  2 | Step:  0 | batch x:  [6. 1. 2. 5. 9.] | batch y:  [ 5. 10.  9.  6.  2.]\n",
            "Epoch:  2 | Step:  1 | batch x:  [ 7.  4. 10.  3.  8.] | batch y:  [4. 7. 1. 8. 3.]\n",
            "Epoch:  3 | Step:  0 | batch x:  [ 2.  3.  1. 10.  7.] | batch y:  [ 9.  8. 10.  1.  4.]\n",
            "Epoch:  3 | Step:  1 | batch x:  [9. 6. 8. 4. 5.] | batch y:  [2. 5. 3. 7. 6.]\n",
            "Epoch:  4 | Step:  0 | batch x:  [7. 4. 8. 2. 9.] | batch y:  [4. 7. 3. 9. 2.]\n",
            "Epoch:  4 | Step:  1 | batch x:  [ 1. 10.  5.  3.  6.] | batch y:  [10.  1.  6.  8.  5.]\n"
          ]
        }
      ],
      "source": [
        "for epoch in range(5):   # train entire dataset 5 times\n",
        "    for step, (batch_x, batch_y) in enumerate(loader):  # for each training step\n",
        "        # train your data...\n",
        "        print('Epoch: ', epoch, '| Step: ', step, '| batch x: ',\n",
        "              batch_x.numpy(), '| batch y: ', batch_y.numpy())"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "id": "3woRCLxHU84j"
      },
      "outputs": [],
      "source": [
        "BATCH_SIZE = 8\n",
        "loader = Data.DataLoader(\n",
        "    dataset=torch_dataset,      # torch TensorDataset format\n",
        "    batch_size=BATCH_SIZE,      # mini batch size\n",
        "    shuffle=True,               # random shuffle for training\n",
        "    num_workers=2,              # subprocesses for loading data\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "id": "HCW2-s_-U84j",
        "outputId": "ea06a395-93fe-483b-d930-338732a898e0",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch:  0 | Step:  0 | batch x:  [7. 2. 5. 8. 1. 4. 6. 3.] | batch y:  [ 4.  9.  6.  3. 10.  7.  5.  8.]\n",
            "Epoch:  0 | Step:  1 | batch x:  [10.  9.] | batch y:  [1. 2.]\n",
            "Epoch:  1 | Step:  0 | batch x:  [ 5.  1.  7.  8. 10.  9.  6.  3.] | batch y:  [ 6. 10.  4.  3.  1.  2.  5.  8.]\n",
            "Epoch:  1 | Step:  1 | batch x:  [2. 4.] | batch y:  [9. 7.]\n",
            "Epoch:  2 | Step:  0 | batch x:  [ 6.  2.  3.  1.  8.  7.  5. 10.] | batch y:  [ 5.  9.  8. 10.  3.  4.  6.  1.]\n",
            "Epoch:  2 | Step:  1 | batch x:  [9. 4.] | batch y:  [2. 7.]\n",
            "Epoch:  3 | Step:  0 | batch x:  [ 4.  3.  5.  7.  2. 10.  6.  1.] | batch y:  [ 7.  8.  6.  4.  9.  1.  5. 10.]\n",
            "Epoch:  3 | Step:  1 | batch x:  [8. 9.] | batch y:  [3. 2.]\n",
            "Epoch:  4 | Step:  0 | batch x:  [ 5.  7.  8. 10.  3.  2.  4.  9.] | batch y:  [6. 4. 3. 1. 8. 9. 7. 2.]\n",
            "Epoch:  4 | Step:  1 | batch x:  [6. 1.] | batch y:  [ 5. 10.]\n"
          ]
        }
      ],
      "source": [
        "for epoch in range(5):   # train entire dataset 5 times\n",
        "    for step, (batch_x, batch_y) in enumerate(loader):  # for each training step\n",
        "        # train your data...\n",
        "        print('Epoch: ', epoch, '| Step: ', step, '| batch x: ',\n",
        "              batch_x.numpy(), '| batch y: ', batch_y.numpy())"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "id": "p5BcnxrPU84k"
      },
      "outputs": [],
      "source": [
        "import torch\n",
        "import torch.utils.data as Data\n",
        "import torch.nn.functional as F\n",
        "from torch.autograd import Variable\n",
        "import matplotlib.pyplot as plt\n",
        "%matplotlib inline"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "id": "A4ifw9hhU84k",
        "outputId": "69e6c044-c2fb-4182-91a2-b82042026166",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<torch._C.Generator at 0x7f39141eba50>"
            ]
          },
          "metadata": {},
          "execution_count": 14
        }
      ],
      "source": [
        "torch.manual_seed(12345)    # reproducible"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "id": "KuiSFYywU84l"
      },
      "outputs": [],
      "source": [
        "LR = 0.01\n",
        "BATCH_SIZE = 32\n",
        "EPOCH = 12"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "id": "GjW3SzrQU84l",
        "outputId": "ded167d8-3641-47d1-89e6-3da241951563",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 265
        }
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "# sample dataset\n",
        "x = torch.unsqueeze(torch.linspace(-1, 1, 1000), dim=1)\n",
        "y = x.pow(2) + 0.3*torch.normal(torch.zeros(*x.size()))\n",
        "\n",
        "# plot dataset\n",
        "plt.scatter(x.numpy(), y.numpy())\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "metadata": {
        "id": "gQHYH9K_U84l",
        "outputId": "9cce60d0-4522-482f-ae59-2c27f86b827d",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "tensor([[-1.0000],\n",
              "        [-0.9980],\n",
              "        [-0.9960],\n",
              "        [-0.9940],\n",
              "        [-0.9920],\n",
              "        [-0.9900],\n",
              "        [-0.9880],\n",
              "        [-0.9860],\n",
              "        [-0.9840],\n",
              "        [-0.9820]])"
            ]
          },
          "metadata": {},
          "execution_count": 17
        }
      ],
      "source": [
        "x[0:10]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 18,
      "metadata": {
        "id": "3jWJMCcIU84m",
        "outputId": "19928ddc-4cbe-4257-8255-2d97ca90209f",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "tensor([[0.5561],\n",
              "        [1.1422],\n",
              "        [0.0882],\n",
              "        [1.1212],\n",
              "        [1.0920],\n",
              "        [0.9764],\n",
              "        [1.0417],\n",
              "        [0.5877],\n",
              "        [1.6916],\n",
              "        [1.5640]])"
            ]
          },
          "metadata": {},
          "execution_count": 18
        }
      ],
      "source": [
        "y[0:10]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 19,
      "metadata": {
        "id": "SRvNsDLTU84m"
      },
      "outputs": [],
      "source": [
        "torch_dataset = Data.TensorDataset(x, y)\n",
        "loader = Data.DataLoader(\n",
        "    dataset=torch_dataset, \n",
        "    batch_size=BATCH_SIZE, \n",
        "    shuffle=True, num_workers=2,)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 20,
      "metadata": {
        "id": "V0D9bUXqU84n",
        "outputId": "eba59a56-2904-443b-aa8b-a536147aa8dc",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<torch.utils.data.dataset.TensorDataset at 0x7f39127b8d50>"
            ]
          },
          "metadata": {},
          "execution_count": 20
        }
      ],
      "source": [
        "torch_dataset"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "metadata": {
        "id": "bd76eBKWU84n",
        "outputId": "bb3e834a-0f91-40ac-f088-a606ad88ebb7",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<torch.utils.data.dataloader.DataLoader at 0x7f39127b8a10>"
            ]
          },
          "metadata": {},
          "execution_count": 21
        }
      ],
      "source": [
        "loader"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "metadata": {
        "id": "VtXSaseRU84o"
      },
      "outputs": [],
      "source": [
        "class Net(torch.nn.Module):\n",
        "    def __init__(self):\n",
        "        super(Net, self).__init__()\n",
        "        self.hidden = torch.nn.Linear(1, 20)   # hidden layer\n",
        "        self.predict = torch.nn.Linear(20, 1)   # output layer\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = F.relu(self.hidden(x))      # activation function for hidden layer\n",
        "        x = self.predict(x)             # linear output\n",
        "        return x"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "metadata": {
        "id": "k7AhyiIaU84o"
      },
      "outputs": [],
      "source": [
        "net_SGD         = Net()\n",
        "net_Momentum    = Net()\n",
        "net_RMSprop     = Net()\n",
        "net_Adam        = Net()\n",
        "nets = [net_SGD, net_Momentum, net_RMSprop, net_Adam]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "metadata": {
        "id": "-PPu3MpFU84o",
        "outputId": "08ec67d4-e828-454a-cfb2-4cca9ed1d70c",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Net(\n",
              "  (hidden): Linear(in_features=1, out_features=20, bias=True)\n",
              "  (predict): Linear(in_features=20, out_features=1, bias=True)\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 24
        }
      ],
      "source": [
        "net_Adam"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "metadata": {
        "id": "-78rnnJ9U84o",
        "outputId": "35824cb6-0fdc-4324-baff-7481a3ecc591",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Net(\n",
              "  (hidden): Linear(in_features=1, out_features=20, bias=True)\n",
              "  (predict): Linear(in_features=20, out_features=1, bias=True)\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 25
        }
      ],
      "source": [
        "net_Momentum"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 26,
      "metadata": {
        "id": "kGwUt7BbU84p",
        "outputId": "d7291e33-ddd7-4467-ac92-7c3bd7c9d40f",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Net(\n",
              "  (hidden): Linear(in_features=1, out_features=20, bias=True)\n",
              "  (predict): Linear(in_features=20, out_features=1, bias=True)\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 26
        }
      ],
      "source": [
        "net_RMSprop"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "metadata": {
        "id": "NQW2iLglU84p",
        "outputId": "afb85596-264d-4509-99ed-b9c3f3114260",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Net(\n",
              "  (hidden): Linear(in_features=1, out_features=20, bias=True)\n",
              "  (predict): Linear(in_features=20, out_features=1, bias=True)\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 27
        }
      ],
      "source": [
        "net_SGD"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "metadata": {
        "id": "jpVPMXfYU84p"
      },
      "outputs": [],
      "source": [
        "opt_SGD         = torch.optim.SGD(net_SGD.parameters(), lr=LR)\n",
        "opt_Momentum    = torch.optim.SGD(net_Momentum.parameters(), \n",
        "                                  lr=LR, momentum=0.8)\n",
        "opt_RMSprop     = torch.optim.RMSprop(net_RMSprop.parameters(), \n",
        "                                      lr=LR, alpha=0.9)\n",
        "opt_Adam        = torch.optim.Adam(net_Adam.parameters(), \n",
        "                                   lr=LR, betas=(0.9, 0.99))\n",
        "optimizers = [opt_SGD, opt_Momentum, opt_RMSprop, opt_Adam]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 29,
      "metadata": {
        "id": "oWDW_3TxU84q",
        "outputId": "ff30aab2-803d-41bf-d65c-118e446d2653",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Adam (\n",
              "Parameter Group 0\n",
              "    amsgrad: False\n",
              "    betas: (0.9, 0.99)\n",
              "    capturable: False\n",
              "    eps: 1e-08\n",
              "    foreach: None\n",
              "    lr: 0.01\n",
              "    maximize: False\n",
              "    weight_decay: 0\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 29
        }
      ],
      "source": [
        "opt_Adam"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "id": "KUJ3Iv8jU84q",
        "outputId": "0adc6541-6c79-4697-a66c-3d39ab1a2215",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "SGD (\n",
              "Parameter Group 0\n",
              "    dampening: 0\n",
              "    foreach: None\n",
              "    lr: 0.01\n",
              "    maximize: False\n",
              "    momentum: 0.8\n",
              "    nesterov: False\n",
              "    weight_decay: 0\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 30
        }
      ],
      "source": [
        "opt_Momentum"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "metadata": {
        "id": "_ZLaVKyHU84q",
        "outputId": "bf34ab09-c631-4e13-8e03-c775f275300c",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "RMSprop (\n",
              "Parameter Group 0\n",
              "    alpha: 0.9\n",
              "    centered: False\n",
              "    eps: 1e-08\n",
              "    foreach: None\n",
              "    lr: 0.01\n",
              "    momentum: 0\n",
              "    weight_decay: 0\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 31
        }
      ],
      "source": [
        "opt_RMSprop"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 32,
      "metadata": {
        "id": "IPpazDbxU84q",
        "outputId": "d78d6885-eb9e-406f-c626-3dd46f0e47cf",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "SGD (\n",
              "Parameter Group 0\n",
              "    dampening: 0\n",
              "    foreach: None\n",
              "    lr: 0.01\n",
              "    maximize: False\n",
              "    momentum: 0\n",
              "    nesterov: False\n",
              "    weight_decay: 0\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 32
        }
      ],
      "source": [
        "opt_SGD"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 33,
      "metadata": {
        "id": "LHBovR6RU84r"
      },
      "outputs": [],
      "source": [
        "loss_func = torch.nn.MSELoss()\n",
        "losses_his = [[], [], [], []]   # record loss"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 34,
      "metadata": {
        "id": "oELGHsUVU84r",
        "outputId": "e56bd22c-1aa7-4501-f5be-407406da1d79",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "MSELoss()"
            ]
          },
          "metadata": {},
          "execution_count": 34
        }
      ],
      "source": [
        "loss_func"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "id": "kh5vbIUVU84r",
        "outputId": "660252e6-dc2a-4457-f17a-ce17fb0f4d6f",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 497
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch:  0\n",
            "Epoch:  1\n",
            "Epoch:  2\n",
            "Epoch:  3\n",
            "Epoch:  4\n",
            "Epoch:  5\n",
            "Epoch:  6\n",
            "Epoch:  7\n",
            "Epoch:  8\n",
            "Epoch:  9\n",
            "Epoch:  10\n",
            "Epoch:  11\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "# training\n",
        "for epoch in range(EPOCH):\n",
        "    print('Epoch: ', epoch)\n",
        "    for step, (batch_x, batch_y) in enumerate(loader):          # for each training step\n",
        "        b_x = Variable(batch_x)\n",
        "        b_y = Variable(batch_y)\n",
        "\n",
        "        for net, opt, l_his in zip(nets, optimizers, losses_his):\n",
        "            output = net(b_x)              # get output for every net\n",
        "            loss = loss_func(output, b_y)  # compute loss for every net\n",
        "            opt.zero_grad()                # clear gradients for next train\n",
        "            loss.backward()                # backpropagation, compute gradients\n",
        "            opt.step()                     # apply gradients\n",
        "            l_his.append(loss.data)     # loss recoder\n",
        "\n",
        "labels = ['SGD', 'Momentum', 'RMSprop', 'Adam']\n",
        "for i, l_his in enumerate(losses_his):\n",
        "    plt.plot(l_his, label=labels[i])\n",
        "plt.legend(loc='best')\n",
        "plt.xlabel('Steps')\n",
        "plt.ylabel('Loss')\n",
        "plt.ylim((0, 0.2))\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "id": "LNHVcXh2U84t"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "id": "WpI2Lsr7U84t"
      },
      "outputs": [],
      "source": []
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.6.4"
    },
    "colab": {
      "name": "Torch_AI_6_2Ed.ipynb",
      "provenance": [],
      "collapsed_sections": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}